package com.shujia.day05;


/**
 *  这是数加集训营26期Java课程中的工具类，提供了对数组的相关操作
 * @author shujia
 * @version v1.0.0
 */
// javadoc -d E:\docs -author -version Tool.java 生成文档注释
public class Tool {

    /**
     *  用于对一个int类型的数组，进行打印
     *
     * @param arr 表示传入的参数为一个int类型的数组
     * @return 返回的数据是 int数组中所有元素组成的字符串 格式为 [元素，元素...]
     */
    public static String printArr(int[] arr){
        String res = "";
        for (int index = 0; index < arr.length; index++) {
            // 需要对下标位置进行判断，根据不同的情况，拼接不同的值
            if(index == 0){
                res += ("[" + arr[index]);
            }else if(index == arr.length -1){
                res += (","+arr[index]+"]");
            }else {
                res += (","+arr[index]);
            }
        }
        return res;
    }

    /**
     * 对传入的int类型的数组，取出其中的最小值和最大值
     * @param arr 表示传入一个int类型的数组
     */
    public static void getMinMaxNum(int[] arr){
        int maxNum = arr[0];
        int minNum = arr[0];

        // foreach 方式
        for (int item : arr) {
            if(maxNum < item){
                maxNum = item;
            }
            if (minNum > item){
                minNum = item;
            }
        }
        System.out.println("maxNum:"+maxNum);
        System.out.println("minNum:"+minNum);
    }

    /**
     *  对传入的int类型数组进行做逆序排序
     *
     * @param arr  表示传入一个int类型的数组
     * @return 返回的结果是一个逆序后的int类型数组
     */
    public static int[] orderByDesc2(int[] arr){
        for (int start = 0,end = arr.length-1; start < end; start++,end--) {
            int tmp = arr[start];
            arr[start] = arr[end];
            arr[end] = tmp;
        }
        return arr;
    }

//   不是一类方法，不能放到一个工具类中
//    public static int interFunction(int num){
//
//        // 如果num是> 1 那么是需要调用自身
//        if(num > 1){
//            int nextNum = interFunction(num - 1);
//            System.out.println(num+"*"+nextNum);
//            return num * nextNum;
//        }else {
//            return 1;
//        }
//    }
}
